home *** CD-ROM | disk | FTP | other *** search
-
- ;HRTmon Amiga system monitor
- ;Copyright (C) 1991-1998 Alain Malek Alain.Malek@cryogen.com
- ;
- ;This program is free software; you can redistribute it and/or
- ;modify it under the terms of the GNU General Public License
- ;as published by the Free Software Foundation; either version 2
- ;of the License, or (at your option) any later version.
- ;
- ;This program is distributed in the hope that it will be useful,
- ;but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;GNU General Public License for more details.
- ;
- ;You can find the full GNU GPL online at: http://www.gnu.org
-
-
- ;-------------- gfx ripper --------------------------------
-
- cmd_p bsr evaluate ;read picno
- bmi.w illegal_val ;illegal expression ?
- beq.b .okpara ;got one param ?
- moveq #0,d0 ;default picno
- .okpara tst.l d0
- bmi.w illegal_val
- cmp.w #500,d0
- bge.w illegal_val
-
- jsr remove_pic
-
- jsr analyse_copper
-
- lea.l custom,a3
-
- move.w $100(a3),d0 ;calc depth
- btst #15,d0
- sne hires
- btst #11,d0
- sne ham
- moveq #8,d1 ;from BPLCON0
- btst #4,d0 ;8 plan ?
- bne.b .go8plan
- rol.w #4,d0
- and.w #%111,d0
- move.w d0,d1
- bne.b .go8plan ;at least 1 plan ?
- moveq #1,d1
- .go8plan move.w d1,depth
-
- cmp.w #6,d1
- seq ehb
- move.w $104(a3),d0
- btst #9,d0 ; kill ehb ?
- beq.b .nokehb
- sf ehb
- .nokehb
- movem.w $92(a3),d0-d1 ;DDFSTRT,DDFSTOP
- move.w $1fc(a3),d2 ;FMODE
- and.w #%11,d2
- cmp.w #3,d2
- bne.b .nolimit
- move.w #$c0,d3
- cmp.w d3,d1
- ble.b .nolimit
- move.w d3,d1
- .nolimit sub.w d0,d1 ;calc width of pic
- lsr.w #3,d1 ;from these
- addq.w #1,d1 ;3 registers
- cmp.w #3,d2
- bne.b .nof3
- addq.w #2,d1
- bra.b .okfmode
- .nof3 tst.w d2
- beq.b .okfmode
- addq.w #1,d1
- .okfmode lsl.w #4,d1
- tst.b hires
- beq.b .nohi
- lsl.w #1,d1
- .nohi move.w d1,width
- move.w #256,height ;height is fixed to 256
-
- movem.l $e0(a3),d0-d7
- movem.l d0-d7,bitplan ;set default bitplan address
-
- move.w $108(a3),d1 ;calc. modulo
- move.w $1fc(a3),d0 ;from FMODE
- ; tst.b hires
- ; bne.b .okfmodeb
- and.w #%11,d0
- cmp.w #3,d0
- bne.b .nof3b
- addq.w #8,d1
- bra.b .okfmodeb
- .nof3b tst.w d0
- beq.b .okfmodeb
- addq.w #4,d1
- .okfmodeb move.w width,d0 ;and from width
- sub.w #320,d0
- asr.w #3,d0
- add.w d0,d1
- move.w d1,modulo
-
- tst.w height
- bgt.b .okh2
- move.w #256,height
- .okh2 tst.w width
- bgt.b .okw2
- move.w #320,width
- .okw2
- bsr restore_palette
-
- move.w #$7f7f,dkey
-
- ;-------------- main loop -----------------------
-
- .raster move.l $4(a6),d0 ;wait next VBL
- lsr.l #1,d0
- lsr.w #7,d0
- cmp.w #2,d0
- bne.b .raster
-
- movem.l bitplan,d0-d7
- movem.l d0-d7,$e0(a6)
- move.w modulo,d0
- move.w d0,$108(a6)
- move.w d0,$10a(a6)
-
- move.w #$38,$92(a6)
- move.w #$d0,$94(a6)
- move.w #0,$102(a6)
- move.w #%1100,$1fc(a6)
- cmp.b #1,config_screen
- bne.b .nontsc0
- move.w #$0,$1dc(a6)
- bra.b .okmode0
- .nontsc0 cmp.b #2,config_screen
- bne.b .nomulti0
- move.w #$0,$1dc(a6)
- bra.b .okmode0
- .nomulti0 move.w #$20,$1dc(a6)
- .okmode0
- move.w #$2c81,$8e(a6)
- moveq #0,d0 ;for $1e4
- move.w #$2c,d1
- add.w height,d1
- cmp.b #1,config_screen
- bne.b .nontsc
- move.w #200+$2c,d2
- bra.b .okmode
- .nontsc move.w #256+$2c,d2
- .okmode cmp.w d2,d1 ;max displayed height ?
- ble.b .okmaxv
- move.w d2,d1
- .okmaxv cmp.w #$100,d1
- blt.b .noVE8
- or.w #$0100,d0
- .noVE8 move.w #$81,d2
- add.w width,d2
- cmp.w #320+$81,d2 ;max displayed width ?
- blt.b .okmaxh
- move.w #320+$81,d2
- .okmaxh cmp.w #$100,d2
- blt.b .noHE8
- or.w #$2000,d0
- .noHE8 lsl.w #8,d1
- and.w #$ff,d2
- or.w d2,d1
- move.w d1,$90(a6)
- move.w d0,$1e4(a6)
-
- move.w #$2,$106(a6) ;sprites outside
- move.w spr_color,d0 ;sprite color bank 0-f
- move.w d0,d1
- lsl.w #4,d1
- or.w d1,d0
- move.w custom+$10c,d1
- and.w #$ff00,d1
- or.w d1,d0
- move.w d0,$10c(a6)
-
- move.w depth,d0
- cmp.w #8,d0
- bne.b .no8
- move.w #$0010,d0
- bra.b .go100
- .no8 lsl.w #8,d0
- lsl.w #4,d0
- .go100 or.w #$0001,d0
- tst.b ham
- beq.b .noham
- or.w #$800,d0
- .noham move.w d0,$100(a6)
-
- bsr do_param
-
- bsr get_dkey
-
- lea.l dkey,a0
- move.b (a0),d0
- cmp.b 1(a0),d0 ;cmp with old dkey
- beq.b .nonew ;for repeat mode
- move.w #20,dkey_rep
- move.b (a0),1(a0)
- bra.b .newkey
- .nonew subq.w #1,dkey_rep
- bpl.w .raster
- clr.w dkey_rep
-
- .newkey
- ;-------------- L+R Shift ------------------
- cmp.b #$60,d0
- beq.b .shift
- cmp.b #$61,d0
- bne.b .noshift
- .shift st dkey_shift
- .noshift cmp.b #$60+$80,d0
- beq.b .shift2
- cmp.b #$61+$80,d0
- bne.b .noshift2
- .shift2 sf dkey_shift
- .noshift2
- ;-------------- f10/esc exit gfx-ripper ----
- cmp.b #$45+$80,d0
- beq.b .exit
- cmp.b #$59,d0
- bne.b .no_f10
- .exit move.b #$7f,(a0)
- bra.w .end_show
- .no_f10
- ;-------------- + add 1 bitplan ------------
- cmp.b #$0c,d0
- bne.b .noplus
- cmp.w #8,depth
- beq.b .noplus
- addq.w #1,depth
- .noplus
- ;-------------- - sub 1 bitplan ------------
- cmp.b #$0b,d0
- bne.b .nominus
- cmp.w #1,depth
- beq.b .nominus
- subq.w #1,depth
- .nominus
- ;-------------- down move pic down ---------
- cmp.b #$4d,d0
- bne.b .nodown
- tst.b set_height
- beq.b .noset
- addq.w #1,tmp_height
- sf dkey_shift
- .noset moveq #40,d1
- add.w modulo,d1
- ext.l d1
- tst.b dkey_shift
- beq.b .nos1
- muls height,d1
- .nos1 move.b bitplan_lock,d2
- lea.l bitplan,a1
- moveq #8-1,d3
- .plan lsr.b #1,d2
- bcs.b .lock
- add.l d1,(a1)
- move.l max_chip,d5
- subq.l #2,d5
- and.l d5,(a1)
- .lock addq.l #4,a1
- dbf d3,.plan
- .nodown
- ;-------------- up move pic up -------------
- cmp.b #$4c,d0
- bne.b .noup
- tst.b set_height
- beq.b .noset2
- tst.w tmp_height
- beq.b .noup
- subq.w #1,tmp_height
- sf dkey_shift
- .noset2 moveq #40,d1
- add.w modulo,d1
- ext.l d1
- tst.b dkey_shift
- beq.b .nos2
- muls height,d1
- .nos2 move.b bitplan_lock,d2
- lea.l bitplan,a1
- moveq #8-1,d3
- .plan2 lsr.b #1,d2
- bcs.b .lock2
- sub.l d1,(a1)
- move.l max_chip,d5
- subq.l #2,d5
- and.l d5,(a1)
- .lock2 addq.l #4,a1
- dbf d3,.plan2
- .noup
- ;-------------- right move pic right -------
- cmp.b #$4e,d0
- bne.b .noright
- moveq #2,d1
- move.b bitplan_lock,d2
- lea.l bitplan,a1
- moveq #8-1,d3
- .plan3 lsr.b #1,d2
- bcs.b .lock3
- add.l d1,(a1)
- move.l max_chip,d5
- subq.l #2,d5
- and.l d5,(a1)
- .lock3 addq.l #4,a1
- dbf d3,.plan3
- .noright
- ;-------------- left move pic left ---------
- cmp.b #$4f,d0
- bne.b .noleft
- moveq #2,d1
- move.b bitplan_lock,d2
- lea.l bitplan,a1
- moveq #8-1,d3
- .plan4 lsr.b #1,d2
- bcs.b .lock4
- sub.l d1,(a1)
- move.l max_chip,d5
- subq.l #2,d5
- and.l d5,(a1)
- .lock4 addq.l #4,a1
- dbf d3,.plan4
- .noleft
- ;-------------- 1-8 (un)lock bitplan -------
- cmp.b #$01,d0
- blt.b .nolock
- cmp.b #$08,d0
- bgt.b .nolock
- moveq #0,d1
- move.b d0,d1
- subq.b #1,d1
- bchg d1,bitplan_lock
- move.b #$7f,(a0)
- .nolock
- ;-------------- M INC(modulo) --------------
- cmp.b #$37,d0
- bne.b .nom
- addq.w #2,modulo
- .nom
- ;-------------- N DEC(modulo) --------------
- cmp.b #$36,d0
- bne.b .non
- subq.w #2,modulo
- .non
- ;-------------- , CLR(modulo) --------------
- cmp.b #$38,d0
- bne.b .novir
- clr.w modulo
- move.b #$7f,(a0)
- .novir
- ;-------------- Q DEC(width) ---------------
- cmp.b #$10,d0
- bne.b .noq
- cmp.w #16,width
- beq.b .noq
- sub.w #16,width
- .noq
- ;-------------- W INC(width) ---------------
- cmp.b #$11,d0
- bne.b .now
- cmp.w #2048,width
- beq.b .now
- add.w #16,width
- .now
- ;-------------- A DEC(height) ---------------
- cmp.b #$20,d0
- bne.b .noa
- cmp.w #1,height
- beq.b .noa
- subq.w #1,height
- .noa
- ;-------------- S INC(height) ---------------
- cmp.b #$21,d0
- bne.b .nos
- cmp.w #2048,height
- beq.b .nos
- addq.w #1,height
- .nos
- ;-------------- R reset bitplans -----------
- cmp.b #$13,d0
- bne.b .nor
- lea.l bitplan,a1
- move.l (a1)+,d1
- moveq #7-1,d2
- .reset move.l d1,(a1)+
- dbf d2,.reset
- move.b #$7f,(a0)
- .nor
- ;-------------- Del INC(spr_color) ---------
- cmp.b #$46,d0
- bne.b .noDel
- addq.w #1,spr_color
- and.w #$f,spr_color
- .noDel
- ;-------------- Help sprite on/off ---------
- cmp.b #$5f,d0
- bne.b .noHelp
- bsr flip_spr
- .noHelp
- ;-------------- H HAM on/off ---------------
- cmp.b #$25,d0
- bne.b .noh
- not.b ham
- .noh
- ;-------------- E EHB on/off ---------------
- cmp.b #$12,d0
- bne.b .noe
- not.b ehb
- .noe
- ;-------------- F1 set picture height ------
- cmp.b #$50,d0
- bne.b .nof1
- not.b set_height
- bne.b .startset
- move.w tmp_height,d1
- bgt.b .oktmpheight
- moveq #1,d1
- .oktmpheight move.w d1,height
- lea.l bitplan,a1
- lea.l tmp_bitplan,a2
- moveq #8-1,d1
- .copyb2 move.l (a2)+,(a1)+ ;keep top of screen ptr
- dbf d1,.copyb2
- bra.b .nof1
- .startset clr.w tmp_height
- lea.l bitplan,a1
- lea.l tmp_bitplan,a2
- moveq #8-1,d1
- .copyb move.l (a1)+,(a2)+ ;keep top of screen ptr
- dbf d1,.copyb
- .nof1
- ;-------------- C (enable cheat sequence) --
-
- cmp.b #$33,d0
- bne.b .noc
- lea.l cheat_cnt,a1
- cmp.b #2,(a1)
- beq.b .okcheat
- sf (a1)
- bra.b .noc
- .okcheat sf (a1)
- not.b cheat
- .noc
- bra.w .raster
-
- ;------------------------------------------------
-
- .end_show
- move.b #$7f,dkey
- move.w #8,$9c(a6)
- clr.w nb_keys ;flush keyboard buffer
- move.b #$7f,key_prev
-
- sf set_height
-
- tst.b gfx_param ;sprite was ON ?
- beq.b .noflip
- bsr flip_spr ;yes
- .noflip
- move.w #$0120,$96(a6) ;sprites DMA and bitplan OFF
- jsr set_pic
- move.w #$8100,$96(a6) ;bitplan DMA on
-
- lea.l plan_txt,a0
- bsr print
-
- lea.l bitplan,a1
- move.w depth,d2
- subq.w #1,d2
- .pr move.l (a1)+,d0
- moveq #8,d1
- bsr print_hex
- move.b #$20,d0
- bsr .printchar
- dbf d2,.pr
- move.b #$a,d0
- bsr .printchar
-
- lea.l width_txt,a0
- bsr print
- moveq #0,d0
- move.w width,d0
- moveq #4,d1
- bsr print_decCR
-
- lea.l height_txt,a0
- bsr print
- move.w height,d0
- moveq #4,d1
- bsr print_decCR
-
- lea.l depth_txt,a0
- bsr print
- move.w depth,d0
- moveq #4,d1
- bsr print_decCR
-
- st p_used ;signal to allow sp command
- jmp end_command
-
- ;-> d0=char
- .printchar move.l a0,-(a7)
- lea.l general_txt,a0
- move.b d0,(a0)
- sf 1(a0)
- bsr print
- move.l (a7)+,a0
- rts
-
- plan_txt dc.b "Bitplans address : ",$a,0
- width_txt dc.b "Picture width : ",0
- height_txt dc.b "Picture height : ",0
- depth_txt dc.b "Picture depth : ",0
-
- cnop 0,4
-
- **************************************************************************
- ;-------------- display parameters with sprite and mouse -----------------
-
- do_param tst.b gfx_param
- beq.w .noparam
-
- bsr init_mouse
- bsr init_spr
- lea.l $120(a6),a0
- move.l #0,(a0)+ ;sprite 0
- move.l #sprite_len,(a0)+ ;sprite 1
- move.l #empty_spr-sprite1,d0
- moveq #6-1,d1
- .clr move.l d0,(a0)+ ;don't use sprites 2-7
- dbf d1,.clr
-
- lea.l ($0+16).w,a0
- lea.l bitplan,a1
- moveq #4-1,d3
- moveq #1,d0 ;xpos
- moveq #0,d1 ;ypos
- .nplan move.l (a1)+,d2
- bsr SprPrintLong
- addq.w #1,d1
- dbf d3,.nplan
-
- move.l #(sprite2+16-sprite1),a0
- moveq #4-1,d3
- moveq #1,d0 ;xpos
- moveq #0,d1 ;ypos
- .nplan2 move.l (a1)+,d2
- bsr SprPrintLong
- addq.w #1,d1
- dbf d3,.nplan2
-
- move.b bitplan_lock,d3
- lea.l ($0+16).w,a0
- moveq #0,d0
- moveq #0,d1
- moveq #4-1,d4
- .lock1 moveq #19,d2 ;spc
- lsr.b #1,d3
- bcc.b .nolock1
- moveq #18,d2 ;L
- .nolock1 bsr print_spr_char
- addq.w #1,d1
- dbf d4,.lock1
-
- move.l #(sprite2-sprite1+16),a0
- moveq #0,d0
- moveq #0,d1
- moveq #4-1,d4
- .lock2 moveq #19,d2 ;spc
- lsr.b #1,d3
- bcc.b .nolock2
- moveq #18,d2 ;L
- .nolock2 bsr print_spr_char
- addq.w #1,d1
- dbf d4,.lock2
-
- move.l #(sprite2-sprite1+16),a0
-
- moveq #10,d0
- moveq #0,d1
- moveq #16,d2 ;W
- bsr print_spr_char
-
- moveq #12,d0
- moveq #0,d1
- move.w width,d2
- bsr SprPrintDec
-
- moveq #10,d0
- moveq #1,d1
- moveq #17,d2 ;H
- bsr print_spr_char
-
- moveq #12,d0
- moveq #1,d1
- move.w height,d2
- tst.b set_height
- beq.b .noset
- move.w tmp_height,d2
- .noset bsr SprPrintDec
-
- moveq #10,d0
- moveq #2,d1
- moveq #13,d2 ;D
- bsr print_spr_char
-
- moveq #19,d2
- tst.b ham
- beq.b .noham
- moveq #17,d2 ;H
- .noham moveq #10,d0
- moveq #3,d1
- bsr print_spr_char
-
- moveq #19,d2
- tst.b ehb
- beq.b .noehb
- moveq #$e,d2 ;E
- .noehb moveq #12,d0
- moveq #3,d1
- bsr print_spr_char
-
-
- moveq #15,d0
- moveq #2,d1
- move.w depth,d2
- bsr print_spr_char
-
- .noparam rts
-
- ;-> d0=xpos
- ;-> d1=ypos
- ;-> d2=long
- ;-> a0=sprite
-
- SprPrintLong movem.l d0-d4,-(a7)
- move.l d2,d3
- moveq #8-1,d4
- .loop rol.l #4,d3
- move.l d3,d2
- and.w #$f,d2
- bsr print_spr_char
- addq.w #1,d0
- dbf d4,.loop
- movem.l (a7)+,d0-d4
- rts
-
- ;-> d0=xpos
- ;-> d1=ypos
- ;-> d2=word
- ;-> a0=sprite
-
- SprPrintWord movem.l d0-d4,-(a7)
- move.l d2,d3
- moveq #4-1,d4
- .loop rol.w #4,d3
- move.w d3,d2
- and.w #$f,d2
- bsr print_spr_char
- addq.w #1,d0
- dbf d4,.loop
- movem.l (a7)+,d0-d4
- rts
-
- ;-> d0=xpos
- ;-> d1=ypos
- ;-> d2=number xxxx
- ;-> a0=sprite
-
- SprPrintDec movem.l d0-d4,-(a7)
- move.l d2,d3
-
- divu #1000,d3
- move.w d3,d2
- bsr print_spr_char
-
- addq.w #1,d0
- clr.w d3
- swap d3
- divu #100,d3
- move.w d3,d2
- bsr print_spr_char
-
- addq.w #1,d0
- clr.w d3
- swap d3
- divu #10,d3
- move.w d3,d2
- bsr print_spr_char
-
- addq.w #1,d0
- swap d3
- move.w d3,d2
- bsr print_spr_char
-
- movem.l (a7)+,d0-d4
- rts
-
-
- ;-> d0=x pos
- ;-> d1=y pos
- ;-> d2=char
- ;-> a0=top left of sprite (64 wide)
-
- print_spr_char movem.l d0-d4/a0-a1,-(a7)
- ext.l d0
- mulu #6*16,d1
- add.l d1,a0
- lea.l sprfont,a1
- moveq #5-1,d4
- move.w d0,d3
- lsr.w #1,d3
- add.w d3,a0
- .next move.b (a1,d2.w),d3
- move.b (a0),d1
- btst #0,d0
- beq.b .noshift
- lsr.w #4,d3
- and.b #$f0,d1
- bra.b .okshift
- .noshift and.b #$0f,d1
- .okshift or.w d3,d1
- move.b d1,(a0)
- lea.l 16(a0),a0 ;next line in sprite
- lea.l 160/8(a1),a1 ;next line in font
- dbf d4,.next
- movem.l (a7)+,d0-d4/a0-a1
- rts
-
- sprfont incbin sprfont.raw
- ;"0123456789abcdefwhl "
-
- init_mouse:
- btst #6,$bfe001
- seq left
- btst #10-8,$16(a6)
- seq right
-
- moveq #0,d5
- tst.b mouse_speed
- beq.b pas_slow
- moveq #1,d5
-
- pas_slow: move.w $a(a6),d0
- move.w d0,d1
- lsr.w #8,d1 ;y
- and.w #$ff,d0 ;x
-
- move.w d0,d2
- sub.w old_mx,d2
- cmp.w #127,d2
- blt.b mo_x1
- move.w d0,d2
- sub.w #256,d2
- sub.w old_mx,d2
- asr.w d5,d2
- add.w d2,x_spr
- move.w d0,old_mx
- bra.b mo_x2
-
- mo_x1: cmp.w #-127,d2
- bgt.b mo_x3
- move.w d0,d2
- add.w #256,d2
- sub.w old_mx,d2
- asr.w d5,d2
- add.w d2,x_spr
- move.w d0,old_mx
- bra.b mo_x2
-
- mo_x3: asr.w d5,d2
- add.w d2,x_spr
- move.w d0,old_mx
-
- mo_x2: move.w d1,d2
- sub.w old_my,d2
- cmp.w #127,d2
- blt.b mo_y1
- move.w d1,d2
- sub.w #256,d2
- sub.w old_my,d2
- asr.w d5,d2
- add.w d2,y_spr
- move.w d1,old_my
- bra.b mo_y2
-
- mo_y1: cmp.w #-127,d2
- bgt.b mo_y3
- move.w d1,d2
- add.w #256,d2
- sub.w old_my,d2
- asr.w d5,d2
- add.w d2,y_spr
- move.w d1,old_my
- bra.b mo_y2
-
- mo_y3: asr.w d5,d2
- add.w d2,y_spr
- move.w d1,old_my
- mo_y2: rts
-
- ;-----------------------------------------------
-
- init_spr:
- moveq #0,d1
- move.w x_spr,d0
- tst.w d0
- bpl.b .so1
- clr.w d0
- move.w d0,x_spr
- .so1 cmp.w #320-80,d0
- blt.b .so2
- move.w #319-80,d0
- move.w d0,x_spr
- .so2
- lea.l $0.w,a1
- move.w x_spr,d0
- move.w y_spr,d2
- bsr set_sprpos
-
- move.l #(sprite2-sprite1),a1
- move.w x_spr,d0
- move.w y_spr,d2
- add.w #44,d0
- bsr set_sprpos
-
- rts
-
- set_sprpos add.w #$81-8,d0
- lsr.w #1,d0
- bcc.b .so0
- moveq #1,d1
- .so0 move.b d0,1(a1)
-
- move.w d2,d0
- bpl.b .so3
- clr.w d0
- clr.w y_spr
- .so3 cmp.w #256,d0
- blt.b .so4
- move.w #255,d0
- move.w d0,y_spr
- .so4 add.w #$2c-2,d0
- cmp.w #256,d0
- blt.b .ok_yspr1
- or.b #%100,d1
- .ok_yspr1 move.b d0,(a1)
- add.w #4*6,d0
- cmp.w #256,d0
- blt.b .ok_yspr2
- or.b #%10,d1
- .ok_yspr2 move.b d0,8(a1)
- move.b d1,9(a1)
- rts
-
- flip_spr movem.l d0-d1/a0-a1,-(a7)
- move.w #$24,$104(a6) ;sprites in front
- lea.l $140(a6),a0
- moveq #0,d0
- moveq #$10-1,d1
- .clr move.l d0,(a0)+ ;clr spr data
- dbf d1,.clr
- move.w #$20,$96(a6) ;Sprite DMA OFF
- not.b gfx_param
- beq.b .nospr
- move.w #$8020,$96(a6) ;Sprite DMA ON
- .nospr
- lea.l sprite1,a0
- lea.l $0.w,a1
- move.w #(sprite_len*2)/4-1,d1
- .loop move.l (a0),d0
- move.l (a1),(a0)+
- move.l d0,(a1)+
- dbf d1,.loop
- movem.l (a7)+,d0-d1/a0-a1
- rts
-
-
- cnop 0,4
-
- ;-------------- picture editor variables (cmd P) -----
-
- depth dc.w 8
- bitplan dcb.l 8,0
- bitplan_lock dc.b %00000000 ;1 bit for each bitplan
- hires dc.b 0 ;0=low-res -1=high res
- ham dc.b 0 ;0=HAM off -1=HAM on
- ehb dc.b 0 ;0=EHB off -1=EHB on
- gfx_param dc.b 0
- set_height dc.b 0 ;set height mode on/off
- p_used dc.b 0 ;-1 if P command used (for SP)
- even
- width dc.w 320
- height dc.w 256
- tmp_height dc.w 0 ;used by set height
- tmp_bitplan dcb.l 8,0 ;keep top of screen for set height
- modulo dc.w 0
-
- spr_color dc.w 0 ;no of bank used for sprite color
- x_spr: dc.w 0
- y_spr: dc.w 0
- x_spr2: dc.w 0
- y_spr2: dc.w 0
- old_mx: dc.w 0
- old_my: dc.w 0
- left: dc.b 0
- right: dc.b 0
- mouse_speed: dc.b 0
-
- cnop 0,4
-
- ;sprite for gfx-ripper info pannel (HELP key)
-
- sprite1: dc.w $3080,0,0,0,$4800,0,0,0
- rept 6*4
- dc.w 0,0,0,0,0,0,0,0
- endr
- empty_spr dc.w 0,0,0,0,0,0,0,0
- dc.w 0,0,0,0,0,0,0,0
-
- sprite_len equ (27*16)
-
- sprite2: dc.w $3080,0,0,0,$4800,0,0,0
- rept 6*4
- dc.w 0,0,0,0,0,0,0,0
- endr
- dc.w 0,0,0,0,0,0,0,0
- dc.w 0,0,0,0,0,0,0,0
- end_sprite
-
-
-